package org.dr.st_docker.resource.LoaderAware;

import org.dr.st_docker.resource.LoaderAware.TestBean;
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;
import org.springframework.core.io.Resource;
import org.springframework.core.io.ResourceLoader;

public class ResourceExample {
    public static void main(String[] args) {
        // Spring容器会将一个ResourceLoader对象作为该方法的参数传入
        ApplicationContext ctx = new ClassPathXmlApplicationContext("resourceBean.xml");
        // 获取TestBean对象
        TestBean testBean = ctx.getBean("testBean", TestBean.class);
        // 获取ResourceLoader对象
        ResourceLoader resourceLoader = testBean.getResourceLoader();
        // 判断ResourceLoader对象是否是Spring容器本身
        System.out.println("Spring容器将自身注入到ResourceLoaderAware Bean 中 ？ ：" + (resourceLoader == ctx));
        // 获取Resource对象
        Resource resource = resourceLoader.getResource("bean.xml");
        // 输出Resource对象的文件名
        System.out.println(resource.getFilename());
        // 输出Resource对象的描述信息
        System.out.println(resource.getDescription());
    }
}
